package com.my.screenadapter.mscreen;

import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.Build;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Display;
import android.view.View;

/**
 * Created by 张英杰 on 2016/12/21.
 */

public class MyScreen {
    /**
     * 得到屏幕宽度
     *
     * @param context
     * @return
     */
    public static int getScreenWidthDp(Context context) {
        //display包含了屏幕尺寸和分辨率 这样的信息
        Display display = ((Activity) context).getWindowManager().getDefaultDisplay();
        //描述了屏幕的尺寸，分辨率，字体大小等信息
        DisplayMetrics metrics = new DisplayMetrics();
        //经过一个测量得到屏幕的尺寸和分辨率
        display.getMetrics(metrics);
        Log.i("宽度===px", metrics.widthPixels + "dp=" + metrics.widthPixels / metrics.density);
        Log.i("高度===px", metrics.heightPixels + "dp=" + metrics.heightPixels / metrics.density);
        return (int) (metrics.widthPixels / metrics.density);
    }

    /**
     * 透明状态栏效果
     * <p>
     * 饿了么这样的效果是只有5.0及以上系统才支持，
     * 因此这里先进行了一层if判断，只有系统版本大于或等于5.0的时候才会执行下面的代码。
     * 接下来我们使用了SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN和SYSTEM_UI_FLAG_LAYOUT_STABLE，
     * 注意两个Flag必须要结合在一起使用，表示会让应用的主体内容占用系统状态栏的空间，
     * 最后再调用Window的setStatusBarColor()方法将状态栏设置成透明色就可以了
     */
    public static void setBarTransparent(Activity activity) {
        if (Build.VERSION.SDK_INT >= 21) {
            View decorView = activity.getWindow().getDecorView();
            int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
            decorView.setSystemUiVisibility(option);
            activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
        }
        android.app.ActionBar actionBar = activity.getActionBar();
//        ActionBar actionBar = getSupportActionBar();
        if (actionBar != null) {
            actionBar.hide();
        }
    }
}
